bitkeeper revision 1.1472.2.3 (428e1d27PlLcEe8kqMtV2NBLhophjg)
authoradsharma@linux-t08.sc.intel.com <adsharma@linux-t08.sc.intel.com>
Fri, 20 May 2005 17:23:51 +0000 (17:23 +0000)
committeradsharma@linux-t08.sc.intel.com <adsharma@linux-t08.sc.intel.com>
Fri, 20 May 2005 17:23:51 +0000 (17:23 +0000)
Merge

1  2 
.rootkeys
xen/arch/ia64/dom_fw.c
xen/arch/ia64/domain.c
xen/arch/ia64/process.c
xen/arch/ia64/tools/mkbuildtree
xen/arch/ia64/vcpu.c
xen/arch/ia64/xenmisc.c
xen/arch/ia64/xensetup.c
xen/include/asm-ia64/config.h
xen/include/xen/sched.h

diff --cc .rootkeys
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index 15ed4af4ea909817731be78f9128727aac3d664a,73792debccbd3f57be96d29a97c31085515afb18..142cbfcb2619f3fdeaeddb581dab894db27cd738
@@@ -232,11 -238,26 +236,26 @@@ void context_switch(struct exec_domain 
  {
  //printk("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n");
  //printk("@@@@@@ context switch from domain %d (%x) to domain %d (%x)\n",
 -//prev->domain->id,(long)prev&0xffffff,next->domain->id,(long)next&0xffffff);
 -//if (prev->domain->id == 1 && next->domain->id == 0) cs10foo();
 -//if (prev->domain->id == 0 && next->domain->id == 1) cs01foo();
 -//printk("@@sw %d->%d\n",prev->domain->id,next->domain->id);
 +//prev->domain->domain_id,(long)prev&0xffffff,next->domain->domain_id,(long)next&0xffffff);
 +//if (prev->domain->domain_id == 1 && next->domain->domain_id == 0) cs10foo();
 +//if (prev->domain->domain_id == 0 && next->domain->domain_id == 1) cs01foo();
 +//printk("@@sw %d->%d\n",prev->domain->domain_id,next->domain->domain_id);
+ #ifdef CONFIG_VTI
+       unsigned long psr;
+       /* Interrupt is enabled after next task is chosen.
+        * So we have to disable it for stack switch.
+        */
+       local_irq_save(psr);
+       vtm_domain_out(prev);
+       /* Housekeeping for prev domain */
+ #endif // CONFIG_VTI
        switch_to(prev,next,prev);
+ #ifdef CONFIG_VTI
+       /* Post-setup for new domain */
+        vtm_domain_in(current);
+       local_irq_restore(psr);
+ #endif // CONFIG_VTI
  // leave this debug for now: it acts as a heartbeat when more than
  // one domain is active
  {
@@@ -246,11 -267,17 +265,17 @@@ int id = ((struct exec_domain *)current
  if (!cnt[id]--) { printk("%x",id); cnt[id] = 50; }
  if (!i--) { printk("+",id); cnt[id] = 100; }
  }
 -      clear_bit(EDF_RUNNING, &prev->flags);
 +      clear_bit(_VCPUF_running, &prev->vcpu_flags);
        //if (!is_idle_task(next->domain) )
                //send_guest_virq(next, VIRQ_TIMER);
+ #ifdef CONFIG_VTI
+       if (VMX_DOMAIN(current))
+               vmx_load_all_rr(current);
+       return;
+ #else // CONFIG_VTI
        load_region_regs(current);
        if (vcpu_timer_expired(current)) vcpu_pend_timer(current);
+ #endif // CONFIG_VTI
  }
  
  void continue_running(struct exec_domain *same)
Simple merge
index c07bfea51c6ea64c7e9043e6346e01a6a5a37242,4c7371cb3e8e337480b20ba0c0a34037f72c360e..2febff599367daac45a509628cea4bdadb110a17
@@@ -272,4 -321,5 +281,4 @@@ extern int ht_per_core
  #else
  # define __attribute_used__   __attribute__((__unused__))
  #endif
--
+ #endif        /* _IA64_CONFIG_H_ */
Simple merge